L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
# start:end:step
print(L[0:3:2])
print(L[::2])
print(L[0:3])
print(L[1:3])

print(L[-2:]) 

# tuple也是一种list，唯一区别是tuple不可变。因此，tuple也可以用切片操作，只是操作的结果仍是tuple：
print((0, 1, 2, 3, 4, 5)[:3])

# 字符串'xxx'也可以看成是一种list，每个元素就是一个字符。因此，字符串也可以用切片操作，只是操作结果仍是字符串：
print('ABCDEFG'[:3])


def trim(s):
    i = 0
    e = -1
    for x in s:
        if x != ' ':
            break
        i += 1    
    while True:
        if e < -len(s) or s[e] != ' ':
            break
        e -= 1
   
    return s[i : len(s) + e + 1]


if trim('hello  ') != 'hello':
    print('测试失败!')
elif trim('  hello') != 'hello':
    print('测试失败!')
elif trim('  hello  ') != 'hello':
    print('测试失败!')
elif trim('  hello  world  ') != 'hello  world':
    print('测试失败!')
elif trim('') != '':
    print('测试失败!')
elif trim('    ') != '':
    print('测试失败!')
else:
    print('测试成功!')
